home *** CD-ROM | disk | FTP | other *** search
/ World of Amiga / World of Amiga.iso / archive / assembly / docmenu.lha / generic_menu2.s < prev   
Text File  |  1993-09-25  |  12KB  |  675 lines

  1.     Section Copperlist,code_C
  2.  
  3.     opt    c-,o+
  4.  
  5.     move.l  4.w,a6        ; open graphics lib
  6.     jsr     -$84(a6)    ; disallow
  7.  
  8.     lea    dlib,a1
  9.     moveq    #0,d0
  10.     move.l    4.w,a6
  11.     jsr    -$228(a6)
  12.     tst    d0
  13.     beq    error
  14.     move.l    D0,dos        ; store address of dos lib
  15.  
  16.     lea    glib,a1
  17.     moveq    #0,d0
  18.     move.l    4.w,a6
  19.     jsr    -$228(a6)
  20.     tst    d0
  21.     beq    error
  22.     move.l    D0,graphics    ; store address of graphics lib
  23.     
  24.     move.l    #Screen+32,d0    ; store address of bitplane0
  25.     move.w    d0,bitplane0_lo    ; into the copper list
  26.     swap    d0
  27.     move.w    d0,bitplane0_hi
  28.     swap    d0
  29.     add.l    #bplen,d0
  30.  
  31.     move.w    d0,bitplane1_lo    ; into the copper list
  32.     swap    d0
  33.     move.w    d0,bitplane1_hi
  34.     swap    d0
  35.     add.l    #bplen,d0
  36.     
  37.     move.w    d0,bitplane2_lo    ; into the copper list
  38.     swap    d0
  39.     move.w    d0,bitplane2_hi
  40.     swap    d0
  41.     add.l    #bplen,d0
  42.     
  43.     move.w    d0,bitplane3_lo    ; into the copper list
  44.     swap    d0
  45.     move.w    d0,bitplane3_hi
  46.     swap    d0
  47.  
  48.     
  49.     move.l  4.w,a6
  50.     move.l    #scrsize,d0
  51.     move.l    #$10002,d1
  52.     jsr    -198(a6)
  53.     
  54.     move.l    d0,screen2
  55.     move.l    screen2,topline
  56.     
  57.     move.l    graphics,a6
  58.     add.l    #$32,a6
  59.     move.w    #$80,$dff096        ; dma control write
  60.     move.l    (a6),old_copper        ; store the address of the
  61.     move.l    #my_copper,(a6)        ; old copperlist
  62.     move.w    #$8080,$dff096        ; dma control write
  63.     move.w    #$8010,$dff09a        ; interupt enable bits
  64.     move.l    $6c.w,old_interupt    ; store old level 3 int
  65.     move.l    #new_interupt,$6c.w    ; store my routine
  66.                     ; into level 3 int
  67.     jsr    setup_screen
  68.     move.w    #0,finished
  69.  
  70.     bchg    #1,$bfe001        ; turn led off
  71.  
  72. not:    move.w    finished,d0
  73.     beq.s    not
  74.  
  75.     bchg    #1,$bfe001        ; turn led on
  76.     
  77.     move.l    old_interupt,$6c.w    ; resore old level 3 int
  78.     move.l    #$10,$dff09a         ; Disable Level 3 Interupt
  79.     move.l    graphics,a6
  80.     add.l    #$32,a6
  81.     move.w    #$0080,$dff096
  82.     move.l    old_copper,(a6)        ; restore old copper list
  83.     move.w    #$8080,$dff096
  84.     move.l    graphics,a1
  85.     move.l    4.w,a6
  86.     jsr    -$19e(a6)
  87.     move.l    4.w,a6
  88.     jsr    -138(a6)
  89.     
  90.     move.l  4.w,a6
  91.     move.l    screen2,a1
  92.     move.l    #scrsize,d0
  93.     jsr    -210(a6)
  94.  
  95. Error:    moveq    #0,d0            ; fin
  96.     rts
  97.  
  98. runline:    dc.l    0
  99. finished:    dc.w    0
  100.  
  101. new_interupt:
  102.     movem.l    d0-d7/a0-a6,-(sp) 
  103.  
  104. wait_irq:
  105.     and.w    #$10,$dff01e
  106.     beq     no_music
  107.     move.w    #$10,$dff09c
  108.  
  109.     subq.l    #1,times
  110.     bmi.s    do_keys
  111.  
  112.     move.l    topline,d0
  113.     add.l    step,d0
  114.     move.l    d0,topline
  115.  
  116.     bra    not_down
  117.  
  118. do_keys:
  119.  
  120.     clr.l    d0
  121.     clr.l    d1 
  122.  
  123.     move.b    $bfec01,d0
  124.     cmp.b    #119,d0
  125.     bne    not_return
  126.     
  127.     move.l    ypos,d0
  128.     lea    commands,a0
  129.     cmp.l    #0,d0
  130.     beq.s    found_runline
  131.     
  132. find1:
  133.     cmp.b #0,(a0)+
  134.     bne.s    find1        
  135.     
  136.     subq.l    #1,d0
  137.     bne.s    find1
  138.  
  139. found_runline:
  140.  
  141.     move.l a0,runline    
  142.     
  143. no_zero:    
  144.     move.b    $bfec01,d0
  145.     cmp.b    #119,d0
  146.     beq.s    no_zero
  147.  
  148.     move.l    old_interupt,$6c.w    ; resore old level 3 int
  149.     move.l    #$10,$dff09a         ; Disable Level 3 Interupt
  150.     move.l    graphics,a6
  151.     add.l    #$32,a6
  152.     move.w    #$0080,$dff096
  153.     move.l    old_copper,(a6)        ; restore old copper list
  154.     move.w    #$8080,$dff096
  155.     move.l    graphics,a1
  156.     move.l    4.w,a6
  157.     jsr    -$19e(a6)
  158.     move.l    4.w,a6
  159.     jsr    -138(a6)
  160.     
  161.     move.l    runline,a0
  162.     move.l    (a0),d0
  163.     cmp.l    #"CLI ",d0
  164.     bne.s    not_cli
  165.     
  166.     move.w    #1,finished
  167.     
  168. not_cli:
  169.  
  170.     move.l    dos,a6
  171.     move.l    runline,d1
  172.     clr    d2
  173.     clr    d3
  174.  
  175.     movem.l    d0-d7/a0-a6,-(sp)
  176.     jsr    -$de(a6)
  177.     movem.l    (sp)+,d0-d7/a0-a6    
  178.     
  179.     move.l  4.w,a6
  180.     jsr     -$84(a6)    ; disallow
  181.  
  182.     lea    dlib,a1
  183.     moveq    #0,d0
  184.     move.l    4.w,a6
  185.     jsr    -$228(a6)
  186.     tst    d0
  187.     beq    error
  188.     move.l    D0,dos        ; store address of dos lib
  189.  
  190.     lea    glib,a1
  191.     moveq    #0,d0
  192.     move.l    4.w,a6
  193.     jsr    -$228(a6)
  194.     tst    d0
  195.     beq    error
  196.     move.l    D0,graphics    ; store address of graphics lib
  197.     
  198.     move.l    graphics,a6
  199.     add.l    #$32,a6
  200.     move.w    #$80,$dff096        ; dma control write
  201.     move.l    (a6),old_copper        ; store the address of the
  202.     move.l    #my_copper,(a6)        ; old copperlist
  203.     move.w    #$8080,$dff096        ; dma control write
  204.     move.w    #$8010,$dff09a        ; interupt enable bits
  205.     move.l    $6c.w,old_interupt    ; store old level 3 int
  206.     move.l    #new_interupt,$6c.w    ; store my routine
  207.  
  208.     bra.s    not_down
  209.  
  210. not_return:
  211.     cmp.b    #103,d0
  212.     bne.s    not_up
  213.  
  214.     move.l    ypos,d7
  215.     beq.s    not_up
  216.     
  217.     subq.l    #1,ypos    
  218.     
  219.     move.l    #-80,step
  220.     move.l    #4,times
  221.     
  222.     move.l    topline,d0
  223.     add.l    #-80,d0
  224.     move.l    d0,topline
  225.  
  226. not_up:
  227.     cmp.b    #101,d0
  228.     bne.s    not_down
  229.     
  230.     move.l    ypos,d7
  231.     move.l    max,d6
  232.     cmp.l    d6,d7
  233.     beq.s    not_down
  234.     
  235.     addq.l    #1,ypos
  236.     
  237.     move.l    #80,step
  238.     move.l    #4,times
  239.     
  240.     move.l    topline,d0
  241.     add.l    #80,d0
  242.     move.l    d0,topline
  243.     
  244. not_down:
  245.  
  246.     move.l    topline,a5
  247.  
  248.     move.l    a5,d0    ; store address of bitplane0
  249.     move.w    d0,bitplane4_lo    ; into the copper list
  250.     swap    d0
  251.     move.w    d0,bitplane4_hi
  252.  
  253.     add.l    #(11*tall*40)-80,a5
  254.  
  255.     move.l    a5,d0
  256.     lea    optical,a0
  257.     add.l    #10,a0
  258.     move.w    #8,d1
  259.     
  260. optic:    move.w    d0,(a0)
  261.     swap    d0
  262.     addq.l    #4,a0
  263.     move.w    d0,(a0)
  264.     swap    d0
  265.     add.l    #16,a0
  266.     
  267.     add.l    #40,d0
  268.     
  269.     subq.w    #1,d1
  270.     bpl.s    optic
  271.  
  272.     move.l    #2500,d0
  273. pause:    dbf    d0,pause
  274.  
  275.  
  276. no_music:
  277.     movem.l    (sp)+,d0-d7/a0-a6    
  278.     dc.w    $4ef9            ; jmp
  279. old_interupt:    dc.l    0        ; the old int lev 3
  280.  
  281. setup_screen:
  282.  
  283.     lea    cmap,a0
  284.     move.w    (a0)+,d0
  285.     
  286.     lea    screen,a1
  287.     move.w    #15,d0
  288. cmaploop:
  289.     move.w    (a1)+,(a0)+
  290.     addq.l    #2,a0
  291.     subq.w    #1,d0
  292.     bpl.s    cmaploop    
  293.  
  294.     lea    names,a1
  295.     move.l    screen2,a2
  296.     add.l    #(11*tall*40)-80,a2
  297.     jsr    blit_message
  298.  
  299.     moveq.l    #10,d0
  300.  
  301.     moveq.l    #-7,d7
  302.  
  303. plot_again:
  304.  
  305.     add.l    #40*tall,a2
  306.     jsr    blit_message
  307.  
  308.     addq.l    #1,d7
  309.  
  310.     move.b    (a1),d0
  311.     bne.s    plot_again
  312.  
  313.     move.l    d7,max
  314.  
  315.     rts
  316.     
  317. blit_message:
  318.  
  319.     movem.l    d0-d7/a2-a6,-(sp)
  320.  
  321.     move.l    a1,a6
  322.     clr.b    d0
  323.     moveq.l    #-1,d1
  324.     
  325. blit_message_loop1:
  326.  
  327.     addq.l    #1,d1
  328.     move.b    (a6),d0
  329.     addq    #1,a6
  330.     cmp.b    #0,d0
  331.     bne.s    blit_message_loop1
  332.  
  333.     move.w    d1,d5
  334.     and.w    #1,d5
  335.     asl.w    #1,d5
  336.     move.w    d5,mid
  337.     
  338.     move.l    a2,midadd
  339.     move.w    d1,d5
  340.  
  341.     addq.l    #1,d1
  342.     lsr.l    #1,d1
  343.     moveq.l    #20,d6
  344.     sub.l    d1,d6
  345.     add.l    d6,a2
  346.     move.l    a2,d2
  347.     and.l    #$fffffffe,d2
  348.     move.l    a2,d3
  349.     and.l    #1,d3
  350.     move.l    d2,a2
  351.     
  352.     move.w    #12,d6
  353.     cmp.l    #1,d3
  354.     beq.s    cont_blit_message
  355.     
  356.     add.w    #12,mid
  357.     subq.l    #2,midadd
  358.     
  359. cont_blit_message:
  360.     
  361.     move.w    d6,d7
  362.     mulu    #8192,d7
  363.     
  364.     subq.w    #4,d6
  365.     cmp.w    #4,d6
  366.     bne.s    other_half
  367.     
  368.     move.w    #12,d6
  369.     add.l    #80,a2
  370.     
  371. other_half:
  372.  
  373.     sub.l    #40,a2
  374.     clr.w    d0
  375.     lea    font,a0
  376.     move.b    (a1),d0
  377.     addq.l    #1,a1
  378.     cmp.b    #0,d0
  379.     bne.s    mess_is_ok
  380.  
  381.     movem.l    (sp)+,d0-d7/a2-a6    
  382.     
  383.     move.w    mid,d5
  384.     mulu    #8192,d5
  385.     or.w    #(%1001*256)+$f0,d5
  386.     
  387.     move.l    midadd,a3
  388.  
  389.     Move.l    a3,$dff054        ; dest mem d
  390.     Move.l    a2,$dff050        ; source mem a
  391.     Move.w    #$ffff,$dff044        ; blit 1st word mask source a
  392.     move.w    #$ffff,$dff046        ; blit last word mask source a
  393.     move.w    #0,$dff064        ; blit modulo for source a
  394.     move.w    d5,$dff040
  395.     move.w    #0,$dff042        ; blit cont reg 1
  396.     Move.w    #0,$dff066        ; modulo for dest
  397.     Move.w    #(8*64)+40,$dff058    ; blit height,width
  398.  
  399.     jsr    do_blit
  400.  
  401. dont_centre:
  402.     rts
  403.     
  404.     
  405. mess_is_ok:
  406.     sub    #32,d0
  407.     mulu    #16,d0
  408.     add    d0,a0
  409.     
  410.     Move.l    a2,$dff054        ; dest mem d
  411.     Move.l    a0,$dff050        ; source mem a
  412.     move.l    a2,$dff048        ; source mem c
  413.     Move.w    #$ffff,$dff044        ; blit 1st word mask source a
  414.     move.w    #$ffff,$dff046        ; blit last word mask source a
  415.     move.w    #0,$dff064        ; blit modulo for source a
  416.     move.w    #38,$dff060        ; blit modulo for source c    
  417.     or.w    #(%1011*256)+$fa,d7
  418.     move.w    d7,$dff040        ; blit cont reg 0
  419.     move.w    #0,$dff042        ; blit cont reg 1
  420.     Move.w    #38,$dff066        ; modulo for dest
  421.     Move.w    #(8*64)+1,$dff058    ; blit height,width
  422.  
  423.     jsr    do_blit
  424.     
  425.     addq.l    #1,a2
  426.     bra    cont_blit_message
  427.  
  428. do_blit:
  429.     btst.b    #6,$dff002
  430.     bne.s    do_blit
  431.     rts
  432.     
  433.  
  434. tadd    equ    230*46
  435.  
  436.  
  437.  
  438.     
  439.     Section    copdat,Data_c
  440.  
  441. names:
  442.     dc.b    "A",0
  443.     dc.b    "AA",0
  444.     dc.b    "AAA",0
  445.     dc.b    "AAAA",0
  446.     dc.b    "AAAAA",0
  447.     dc.b    "AAAAAA",0
  448.     dc.b    "AAAAAAA",0
  449.     dc.b    "AAAAAAAA",0
  450.     dc.b    "AAAAAAAAA",0
  451.     dc.b    "AAAAAAAAAA",0
  452.     dc.b    "AAAAAAAAAAA",0
  453.     dc.b    "AAAAAAAAAAAA",0
  454.     dc.b    "AAAAAAAAAAAAA",0
  455.     dc.b    "AAAAAAAAAAAAAA",0
  456.     dc.b    "AAAAAAAAAAAAAAA",0
  457.     dc.b    "AAAAAAAAAAAAAAAA",0
  458.     dc.b    "AAAAAAAAAAAAAAAAA",0
  459.     dc.b    "AAAAAAAAAAAAAAAAAA",0
  460.     dc.b    "AAAAAAAAAAAAAAAAAAA",0
  461.     dc.b    "AAAAAAAAAAAAAAAAAAAA",0
  462.     dc.b    "AAAAAAAAAAAAAAAAAAAAA",0
  463.     dc.b    "AAAAAAAAAAAAAAAAAAAAAA",0
  464.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAA",0
  465.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAA",0
  466.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAA",0
  467.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAA",0
  468.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  469.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  470.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  471.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  472.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  473.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  474.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  475.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  476.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  477.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  478.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  479.     dc.b    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0
  480.  
  481.     dc.b    " ",0
  482.     dc.b     "(C) LSD 1990",0
  483.     dc.b    "WRITTEN BY SHAGRATT OF LSD",0
  484.     dc.b    "   ",0
  485.     dc.b    "   ",0
  486.     dc.b    "   ",0
  487.     dc.b    "   ",0
  488.     dc.b    0
  489.  
  490.     even
  491.     
  492. commands:
  493.      dc.b    "list df0:",0
  494.     dc.b    " ",0
  495.     dc.b    "list df1:",0
  496.     dc.b    "CLI ",0
  497.     dc.b    "CLI ",0
  498.     dc.b    "CLI ",0
  499.     dc.b    "CLI ",0
  500.     dc.b    "CLI ",0
  501.     dc.b    "CLI ",0
  502.     dc.b    "CLI ",0
  503.     dc.b    "CLI ",0
  504.     dc.b    "CLI ",0
  505.     dc.b    "CLI ",0
  506.     dc.b    "CLI ",0
  507.     dc.b    "CLI ",0
  508.     dc.b    "CLI ",0
  509.     dc.b    "CLI ",0
  510.     dc.b    "CLI ",0
  511.     dc.b    "CLI ",0
  512.     dc.b    "CLI ",0
  513.     dc.b    "CLI ",0
  514.     dc.b    "CLI ",0
  515.     dc.b    "CLI ",0
  516.     dc.b    "CLI ",0
  517.     dc.b    "CLI ",0
  518.     dc.b    "CLI ",0
  519.     dc.b    "CLI ",0
  520.     dc.b    "CLI ",0
  521.     dc.b    "CLI ",0
  522.     dc.b    "CLI ",0
  523.     dc.b    "CLI ",0
  524.     dc.b    "CLI ",0
  525.  
  526.  
  527. mid:        dc.w    0
  528. midadd:        dc.l    0
  529. totalnumber:    dc.l    0
  530.  
  531. old_copper:    dc.l    0
  532. graphics:    dc.l    0
  533. dos:        dc.l    0
  534.  
  535. my_copper:    dc.w    $100,$4200    ; 4 bp - lores - 
  536.         dc.w    $104,$a        ; bp control reg
  537.         dc.w    $108,0        ; bp modulo - odd
  538.         dc.w    $10a,0        ; bp modulo - even
  539.         dc.w    $180,0        ; colour 0 to black
  540.  
  541.         dc.w    $120,0,$122,0
  542.         
  543.         dc.w    $182,$fff
  544.     
  545.         dc.w    $092,$38    ; bp start horz
  546.         dc.w    $08e,$2c8c    ; bp window start left
  547.         dc.w    $090,$2ce3    ; bp window bot right
  548.         dc.w    $094,$2dd0    ; bp stop horz
  549.         
  550. cmap:        dc.w    $180,0
  551.         dc.w    $182,0
  552.         dc.w    $184,0
  553.         dc.w    $186,0
  554.         dc.w    $188,0
  555.         dc.w    $18a,0
  556.         dc.w    $18c,0
  557.         dc.w    $18e,0
  558.         dc.w    $190,0
  559.         dc.w    $192,0
  560.         dc.w    $194,0
  561.         dc.w    $196,0
  562.         dc.w    $198,0
  563.         dc.w    $19a,0
  564.         dc.w    $19c,0
  565.         dc.w    $19e,0
  566.     
  567.         
  568.         dc.w    $0e0
  569. bitplane0_hi:    dc.w    0
  570.         dc.w    $e2
  571. bitplane0_lo:    dc.w    0,$e4
  572. bitplane1_hi:    dc.w    0
  573.         dc.w    $e6
  574. bitplane1_lo:    dc.w    0,$e8
  575. bitplane2_hi:    dc.w    0
  576.         dc.w    $ea
  577. bitplane2_lo:    dc.w    0,$ec
  578. bitplane3_hi:    dc.w    0
  579.         dc.w    $ee
  580. bitplane3_lo:    dc.w    0
  581.  
  582.         dc.b    top_of_copper,1
  583.         dc.w    $ff00,$182,$000
  584.         dc.w    $100,$1200    ; 1 bp - lores 
  585.         
  586.         dc.w    $0e0
  587. bitplane4_hi:    dc.w    0
  588.         dc.w    $e2
  589. bitplane4_lo:    dc.w    0
  590.         
  591.         dc.b    top_of_copper+1,1
  592.         dc.w    $ff00,$182,$222
  593.         dc.b    top_of_copper+2,1
  594.         dc.w    $ff00,$182,$444
  595.         dc.b    top_of_copper+3,1
  596.         dc.w    $ff00,$182,$666
  597.         dc.b    top_of_copper+4,1
  598.         dc.w    $ff00,$182,$888
  599.         dc.b    top_of_copper+5,1
  600.         dc.w    $ff00,$182,$aaa
  601.         dc.b    top_of_copper+6,1
  602.         dc.w    $ff00,$182,$ccc
  603.         dc.b    top_of_copper+7,1
  604.         dc.w    $ff00,$182,$eee
  605.         dc.b    top_of_copper+8,1
  606.         dc.w    $ff00,$182,$fff
  607.  
  608. optical:
  609.         dc.b    down+00,1
  610.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$200
  611.         dc.b    down+02,1
  612.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$600
  613.         dc.b    down+04,1
  614.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$a00
  615.         dc.b    down+06,1
  616.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$f00
  617.         dc.b    down+08,1
  618.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$a00
  619.         dc.b    down+10,1
  620.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$600
  621.         dc.b    down+12,1
  622.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$200
  623.         dc.b    down+14,1
  624.         dc.w    $ff00,$108,-40,$e2,0,$e0,0,$180,$000    ; decender line
  625.         dc.b    down+16,1
  626.         dc.w    $ff00,$108,  0,$e2,0,$e0,0,$180,$000    ; decender line
  627.  
  628.         dc.w    $ffe1,$fffe    ; wait for end of ntsc screen
  629.         
  630.         dc.w    $2501,$ff00,$182,$fff
  631.         dc.w    $2601,$ff00,$182,$eee
  632.         dc.w    $2701,$ff00,$182,$ccc
  633.         dc.w    $2801,$ff00,$182,$aaa
  634.         dc.w    $2901,$ff00,$182,$888
  635.         dc.w    $2a01,$ff00,$182,$666
  636.         dc.w    $2b01,$ff00,$182,$444
  637.         dc.w    $2c01,$ff00,$182,$222
  638.         dc.w    $2d01,$ff00,$182,0
  639.  
  640.         dc.w    $3001,$ff00    ; wait for end of pal screen
  641.  
  642.         dc.w    $9c,$8010    ; irq set bits - ?
  643.         dc.w    $ffff,$fffe    ; end of copper list
  644.     
  645. glib:        dc.b    "graphics.library",0
  646.         even
  647. dlib:        dc.b    "dos.library",0
  648.         even        
  649.  
  650. tall        equ    10
  651.     
  652. screen:        incbin    "doclogo.bin";    must have the colour map before the 
  653.                      ;    image, must be 40 horz and any
  654.                      ;  size vertically (within reason).
  655.  
  656. scrsize:    equ    40*tall*176  ;  150 names + 13 top + 13 bottom
  657. screen2:    dc.l    0
  658. font:        incbin    "chrset.wrd"
  659.         even
  660.         
  661. topline:    dc.l    0
  662. times:        dc.l    0
  663. step:        dc.l    0
  664. ypos:        dc.l    0
  665. max:        dc.l    0
  666.  
  667. bplen        equ    ((screen2-screen)-32)/4
  668. top_of_copper    equ    44+(bplen/40)
  669. down        equ    top_of_copper+108
  670. lookup_list:    dcb.l    150,0
  671.  
  672.  
  673.  
  674.     End
  675.